x86: Fix PV PIT handler after previous changeset.
authorKeir Fraser <keir.fraser@citrix.com>
Sat, 12 Jan 2008 11:26:04 +0000 (11:26 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Sat, 12 Jan 2008 11:26:04 +0000 (11:26 +0000)
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/hvm/i8254.c

index c11d50e6d9fb5d42e2fea242fbf759ceaadf14b7..01c78f77996600ea93a1f528a2e3819459dd57e4 100644 (file)
@@ -601,14 +601,20 @@ int pv_pit_handler(int port, int data, int write)
         .dir  = write ? IOREQ_WRITE : IOREQ_READ,
         .data = data
     };
-    uint32_t val = data;
 
     if ( (current->domain->domain_id == 0) && dom0_pit_access(&ioreq) )
+    {
         /* nothing to do */;
-    else if ( port == 0x61 )
-        handle_speaker_io(ioreq.dir, port, 1, &val);
+    }
     else
-        handle_pit_io(ioreq.dir, port, 1, &val);
+    {
+        uint32_t val = data;
+        if ( port == 0x61 )
+            handle_speaker_io(ioreq.dir, port, 1, &val);
+        else
+            handle_pit_io(ioreq.dir, port, 1, &val);
+        ioreq.data = val;
+    }
 
     return !write ? ioreq.data : 0;
 }